Гомотопические (Ко)-Лимиты

Как известно понять теорию категорий можно только если научился строить лимиты, а понять теорию гомотопий можно, если научился строить гомотопические лимиты! Гомотопический лимит в общем случае не равен категорному. Определение лимита простое — для любых f: A -> C и g: B -> C это ∑ (a: A) ∑ (b: B) f(a) =_C f(b) . Т.е. гомотопический лимит это обобщение расслоения. Кроме Кубической Теории Типов есть еще и Кубическая Гомотопическая теория, в которй 0-клетки — это пространства, 1-клетки — это расслоения, 2-клетки — это лимиты и колимиты, и т.д. В учебнике HoTT троллят читателя и вместо того, чтобы дать пулбеки и пушауты главами, пулбек предлагают решить как упражнение 2.11 ко второй главе.

Чтобы определить гомотопический колимит или пушаут, уже недостаточно пи и сигмы даже чтобы записать сигнатуру, нужны либо высшие индуктивные типы, либо, если вы умеете (а я вам рассказывал), ипредикативную кодировку. Проще говоря, нужно умножение в лимите заменить на сумму. Покажем как выглядит гомотопический колимит, это для функций f: C -> A, g: C -> B по сути сумма типов po1: A -> colim, po2: B -> colim и их равенства po3: (c: C) -> po1 (f c) = po2 (g c). Нужно построить для этого типа рекурсор и индукцию, кто возьмется?

Homotopy Colimit

data pushout (A B C: U) (f: C -> A) (g: C -> B) = po1 (_: A) | po2 (_: B) | po3 (c: C) <i> [ (i=0) -> po1 (f c), (i=1) -> po2 (g c) ]

Homotopy Limit

pullback (A B C:U) (f: A -> C) (g: B -> C): U = (a: A) * (b: B) * Path C (f a) (g b) pb1 (A B C: U) (f: A -> C) (g: B -> C): pullback A B C f g -> A = \(x: pullback A B C f g) -> x.1 pb2 (A B C: U) (f: A -> C) (g: B -> C): pullback A B C f g -> B = \(x: pullback A B C f g) -> x.2.1 pb3 (A B C: U) (f: A -> C) (g: B -> C): (x: pullback A B C f g) -> Path C (f x.1) (g x.2.1) = \(x: pullback A B C f g) -> x.2.2 induced (Z A B C: U) (f: A -> C) (g: B -> C) (z1: Z -> A) (z2: Z -> B) (h: (z:Z) -> Path C ((o Z A C f z1) z) (((o Z B C g z2)) z)) : Z -> pullback A B C f g = \(z: Z) -> ((z1 z),(z2 z),h z) pullbackSq (Z A B C: U) (f: A -> C) (g: B -> C) (z1: Z -> A) (z2: Z -> B): U = (h: (z:Z) -> Path C ((o Z A C f z1) z) (((o Z B C g z2)) z)) * isEquiv Z (pullback A B C f g) (induced Z A B C f g z1 z2 h) isPullbackSq (Z A B C: U) (f: A -> C) (g: B -> C) (z1: Z -> A) (z2: Z -> B) (h: (z:Z) -> Path C ((o Z A C f z1) z) (((o Z B C g z2)) z)): U = isEquiv Z (pullback A B C f g) (induced Z A B C f g z1 z2 h)

Exercise 2.11. Prove that the pullback P :≡ A x_C B defined in (2.15.11) is the corner of a pullback square.

completePullback (A B C: U) (f: A -> C) (g: B -> C) : pullbackSq (pullback A B C f g) A B C f g (pb1 A B C f g) (pb2 A B C f g) = ?

[1]. B.Munson. Cubical Homotopy Theory.
[2]. M.Frankland. Homotopy Theory Homotopy pullbacks
[3]. Infinity.HIT.Pullback
[4]. Homotopy Limits